package cn.iocoder.yudao.module.api.shop.staff;

import cn.iocoder.yudao.module.api.shop.staff.dto.ShopStaffSaveDTO;
import cn.iocoder.yudao.module.api.shop.staff.vo.ShopStaffVO;
import jakarta.annotation.Nullable;

import java.util.List;

/**
 * <pre>
 * OOoO0OOoO0OOOooo0oOOOO0OOOOO0oooOO0ooOOO0Ooooo0OOOOo0ooooO0OOooo0Ooooo0OOOOO
 *  这里是文件说明
 * OOoO0OOoO0OOOooo0oOOOO0OOOOO0oooOO0ooOOO0Ooooo0OOOOo0ooooO0OOooo0Ooooo0OOOOO
 * </pre>
 *
 * @author 山野羡民（1032694760@qq.com）
 * @since 2025/03/31
 */
public interface ShopStaffApi {

    ShopStaffVO getById(Long id);

    ShopStaffVO getByUserId(Long shopId, Long userId, Integer userType);

    ShopStaffVO getByMobile(Long shopId, String mobile);

    ShopStaffVO getByUserId(Long userId, Integer userType, @Nullable Integer role);

    List<ShopStaffVO> getByMemberUserId(Long userId);

    boolean isStaff(Long userId, Integer userType, @Nullable Integer role);

    void saveStaff(ShopStaffSaveDTO dto);

    List<ShopStaffVO> getByShopIdAndRole(Long shopId, @Nullable Integer role);

    void updateStaffStatus(Long id, Integer status);

}
